package mid

func MyPow(x float64, n int) float64 {
	if n >= 0 {
		return quickMul(x, n)
	}
	return quickMul1(1.0/x, -n)
}
func quickMul(x float64, n int) float64 {
	if n == 0 {
		return 1
	}
	y := quickMul(x, n/2)
	if n%2 == 0 {
		return y * y
	}
	return y * y * x
}
func quickMul1(x float64, n int) float64 {
	res := 1.0
	temp := x
	for n > 0 {
		if n%2 == 1 {
			res *= temp
		}
		temp *= temp
		n /= 2
	}
	return res
}
